The present invention relates to industrial controllers and in particular to a network card that can be attached to an industrial controller to allow the industrial controller to communicate with communication networks of different protocols.
Industrial controllers are special purpose computers used for controlling industrial processes and manufacturing equipment. Under the direction of a stored control program, the industrial controller examines a series of inputs reflecting the status of a controlled process and in response, adjusts a series of outputs controlling the process. The inputs and outputs may be binary, that is on or off, or analog providing a value within a continuous range of values.
Industrial controllers may communicate with other industrial controllers or remote input and output (I/O) devices by means of well-known, high-speed serial communication networks such as Ethernet, ProfiBus, FieldBus, FireWire, and DeviceNet or by proprietary data networks such as the Data Highway series protocols developed by the assignee of the present application. In order to accommodate the variety of protocols, a series of network cards may developed, each tailored to provide communications with a different network. The industrial controller is then constructed in modular form to allow different network cards to be attached to it as needed.
The interface between the network card and the industrial controller must efficiently transmit large amounts of data as part of the communication process. One simple method of accommodating a transfer of large amounts of asynchronous data is by the use of a dual-port memory into and from which the industrial controller and the network card may both independently write and read. Such an interface also allows the adoption of a well-established memory interface such as the Personal Computer Memory Card (PCMCIA) used in laptop computers and the like. The PCMCIA standard describes the signals and low-level protocol of the interface process.
A dual-port memory may be partitioned into a number of buffer areas to facilitate the bi-directional and asynchronous transfer of data. The size of the buffers may be selected to facilitate the use of the network card with many different types of industrial controllers. Generally, however, any set of standard buffer sizes will be less than optimal for a given industrial controller and it would be desirable to allow the industrial controller to determine the partition values for the dual-port memory according to the type of industrial controller and the control environment.
There are two problems with allowing partitioning of the buffers by the industrial controller. The first is that any partitioning must be compatible with the network card and the particular communication protocol that it supports. While this may be ensured by providing the industrial controller with special programs indicating the partition limits and buffer requirements for each different network, such additional programming is expensive and burdensome and limits the use of pre-existing industrial controllers with later introduced network cards for which they are not programmed.
A second problem is that the communications path between the industrial controller and the network card is the very memory being partitioned and prior to partitioning of the memory, no communication can be established. Adding separate communication lines outside of the memory interface for communicating partitioning information can solve this problem of communication, but this comes at the cost of complicating a simple interface using a standard memory card protocol.
What would be desirable is a simple way to permit the industrial controller to partition the buffer areas of a network card using a standard memory interface.
The present invention provides an interface between an industrial controller and a replaceable network card using a dual-port memory. The network card, at power up, proposes default buffer partitions in common areas of the dual-port memory that is designated to not be re-partitioned. In this way, it can be assured that the industrial controller and network card can both read and write to these common areas. The industrial controller may read the values in the common area of the memory to propose new partition values. The network card may accept or reject these proposed new partition values as part of a negotiation process using knowledge about partitioning requirements unique to the network and/or the network card. The negotiation process allows maximum flexibility in modifying the partitioning by the industrial controller while ensuring compatibility with the particular network whose details may be invisible to the industrial controller.
Specifically then, the present invention provides an interface for a network card used with an industrial controller. The network card includes a dual-port memory partitionable to provide buffers for the passage of messages between the network card and the industrial controller and a connector half providing a releasable electrical interface between the dual-port memory and the industrial controller allowing access to the dual-port memory by the industrial controller when the connector half is connected to a corresponding connector half on the industrial controller. An electronic computer executes a stored program to receive via the dual-port memory, an indication of at least one proposed new partitioning value for the dual-port memory from the industrial controller and evaluate the proposed new partitioning value. If the new value is acceptable, the computer re-partitions the dual-port memory to comport with the proposed new partitioning value.
It is thus one object of the invention to provide for re-partitioning of a dual-port memory using the dual-port memory itself to communicate the re-partitioning values and thus eliminate the need for a separate data channel between the industrial controller and the network card outside of the dual-port memory.
It is another object of the invention to permit an industrial controller without a priori knowledge about the operation of the network to nevertheless propose new buffer partitioning that may be better suited to the control task. Negotiation and review by the network card ensures that the ultimately selected partitioning is compatible with the network requirements.
A non-volatile memory in the network card may hold default values for the partitioning of the dual-port memory into buffers and the network card may write the default values for the partitioning to the dual-port memory prior to receiving proposed new partitioning values.
It is thus another object of the invention to allow the network card to be used without the negotiation when optimization is not required or where the industrial controller is not programmed for the negotiation process.
The program step of writing the default partitioning value to the common memory area may be concluded by generating an interrupt to the industrial controller.
Thus it is another object of the invention to make use of the interrupt lines normally associated with a memory interface to eliminate a need for polling of the dual-port memory to determine changes in partitioning values.
The dual-port memory may be a non re-partitionable portion and a re-partitionable portion where the default and proposed new partitioning values describe partitioning of the re-partitionable portion. The new partitionable value may be received through the non re-partitionable portion.
Thus it is another object of the invention to allow reliable communication about re-partitioning between the industrial controller and the network card using a dual-port memory despite the re-partitioning of the dual-port memory.
The network card may report to the industrial controller via the dual-port memory whether the proposed new partitioning value is acceptable to the operation of the network card.
Thus it is another object of the invention to permit a series of proposal of partition values from the industrial controller such as may allow the industrial controller to approach a commonly optimal partitioning without knowledge of the network requirements.
The industrial controller may communicate proposed new partitioning values by overwriting the default values (during start-up) or by means of an instruction carried through the partitionable portion of the dual-port memory (after start up is complete) proposing new partitioning values.
Thus it is another object of the invention to allow efficient communication of proposed new values through overwriting during the start up process when the larger partitioned portion of the dual-port memory is not available and later to permit the use of standard messaging for this purpose.
The foregoing and other objects and advantages of the invention will appear from the following description. In the description, reference is made to the accompanying drawings which form a part hereof, and in which there is shown by way of illustration a preferred embodiment of the invention. Such embodiment does not necessary represent the full scope of the invention, however, and reference must be made to the claims herein for interpreting the scope of the invention.